package com.book.modules.configure;

import com.book.common.util.DatetimeUtil;
import com.p6spy.engine.spy.appender.MessageFormattingStrategy;
import org.apache.commons.lang3.StringUtils;

import java.time.Clock;

/**
 * 自定义 p6spy sql输出格式
 *
 * Description：
 * @Author： leo.xiong
 * @CreateDate： 2019/8/13 16:29
 * @Email： leo.xiong@suyun360.com
 * Version：1.0
 */
public class P6spySqlFormatConfigure implements MessageFormattingStrategy {

    /**
     * 过滤掉定时任务的 SQL
     */
    @Override
    public String formatMessage(int connectionId, String now, long elapsed, String category, String prepared, String sql, String url) {
        return StringUtils.isNotBlank(sql) ? DatetimeUtil.formatDate(Clock.systemDefaultZone().millis(), DatetimeUtil.YYYY_MM_DD_HH_MM_SS_L_C)
                + " | 耗时 " + elapsed + " ms | " + category + " | connection " + connectionId + "| SQL 语句：" + StringUtils.LF + sql.replaceAll("[\\s]+", StringUtils.SPACE) + ";" : StringUtils.EMPTY;
    }
}
